using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

using Admaco.Data;

namespace Admaco.Presentation
{
    public partial class AbrirAnalisis : Form
    {
        /// <summary>
        /// Lista de analisis cargados
        /// </summary>
        private ArrayList listaAnalisis = new ArrayList();

        public AbrirAnalisis()
        {
            InitializeComponent();
        }

        /// <summary>
        /// Carga la lista de procesos con aquellos en estado Finalizado
        /// </summary>
        private void cargarListaProcesos()
        {
            listaProcesos.Items.Clear();

            Analisis analisis = new Analisis();
            ArrayList analisisFinalizado = analisis.getByEstado(Estado.finalizado);
            
            listaAnalisis.Clear();
            listaAnalisis.AddRange(analisisFinalizado);
            
            // Muestro analisis
            foreach (Analisis a in listaAnalisis)
            {
                ListViewItem item = listaProcesos.Items.Add(a.Fichero.Titulo);
                item.SubItems.Add(a.TipoAnalisis.Nombre);
                item.SubItems.Add(a.FechaInicio.ToString());
                item.SubItems.Add(a.FechaFin.ToString());
                item.SubItems.Add(a.Prioridad.Nivel);
                item.SubItems.Add(a.Usuario.Nombre);                
            }

            if (listaAnalisis.Count == 0)
                abrirButton.Enabled = false;

        }


        private void AbrirAnalisis_Load(object sender, EventArgs e)
        {
            cargarListaProcesos();
        }

        private void abrirButton_Click(object sender, EventArgs e)
        {
            // Obtengo indice del analisis seleccionado
            ListView.SelectedIndexCollection indices = listaProcesos.SelectedIndices;

            if (indices.Count > 0) {              
                Principal.Analisis = (Analisis)listaAnalisis[indices[0]];
            }

            Close();
        }

        private void cancelarButton_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void listaProcesos_DoubleClick(object sender, EventArgs e)
        {
            abrirButton_Click(sender, e);
        }

        private void AbrirAnalisis_HelpRequested(object sender, HelpEventArgs hlpevent)
        {
            Help.ShowHelp(this, "AdmacoHelp.chm", HelpNavigator.TopicId, "3");
        }

        private void AbrirAnalisis_HelpButtonClicked(object sender, CancelEventArgs e)
        {
            Help.ShowHelp(this, "AdmacoHelp.chm", HelpNavigator.TopicId, "3");
        }
    }
}